@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ==========================================
echo           Python 部署脚本启动器
echo ==========================================
echo.

:: 检查 uv 是否安装
uv --version >nul 2>&1
if errorlevel 1 (
    echo ❌ 错误: 未找到 uv，请确保已安装 uv 并添加到 PATH
    echo 安装方法: pip install uv 或访问 https://github.com/astral-sh/uv
    pause
    exit /b 1
)

:: 检查 main.py 是否存在
if not exist "main.py" (
    echo ❌ 错误: 未找到 main.py 文件
    pause
    exit /b 1
)

echo ✅ uv 环境检查通过
echo.

:: 获取用户输入
echo 请输入部署参数:
echo.

:input_repo
set /p git_repo="📁 Git 仓库地址: "
if "!git_repo!"=="" (
    echo ❌ Git 仓库地址不能为空
    goto input_repo
)

:input_branch
set /p branch_pattern="🌿 分支模式 (如: main, feature/*, develop): "
if "!branch_pattern!"=="" (
    echo ❌ 分支模式不能为空
    goto input_branch
)

set /p project_name="📦 项目名称 (可选，按回车跳过): "

echo.
echo ==========================================
echo 确认部署参数:
echo ==========================================
echo Git 仓库: !git_repo!
echo 分支模式: !branch_pattern!
if not "!project_name!"=="" (
    echo 项目名称: !project_name!
) else (
    echo 项目名称: 自动从仓库地址提取
)
echo ==========================================
echo.

:confirm
set /p confirm="确认开始部署? (y/n): "
if /i "!confirm!"=="y" goto deploy
if /i "!confirm!"=="n" goto cancel
echo 请输入 y 或 n
goto confirm

:cancel
echo 部署已取消
pause
exit /b 0

:deploy
echo.
echo 🚀 开始部署...
echo.

:: 构建 uv 命令
if "!project_name!"=="" (
    set uv_cmd=uv run main.py "!git_repo!" "!branch_pattern!"
) else (
    set uv_cmd=uv run main.py "!git_repo!" "!branch_pattern!" "!project_name!"
)

:: 执行部署
echo 执行命令: !uv_cmd!
echo.
!uv_cmd!

:: 检查执行结果
if errorlevel 1 (
    echo.
    echo ❌ 部署失败，错误代码: %errorlevel%
) else (
    echo.
    echo ✅ 部署完成!
)

echo.
echo 按任意键退出...
pause >nul
